iT邦幫忙

2023 iThome 鐵人賽

DAY 22
0
自我挑戰組

一個營建系學生的韌體之路-自走車篇系列 第 22

【AMR_Day22】認識URDF多一點

  • 分享至 

  • xImage
  •  

前情提要

Day21介紹了URDF、SDF分別代表的意義,也都提到了基本架構。單純看基本架構看不太出兩者的不同,因為還有很多xml的<element>元素還沒被介紹到,就是因為這些<element>的些微不同讓兩者的改寫上沒那麼容易。
昨天也有提到URDF可以被Gazebo解析成SDF,URDF相對上比較容易理解,而且如果不考慮物理碰撞模擬(Gazebo)的話,單純有URDF機器人外觀就能好好的呈現在RViz上了。

<robot>

  • <robot>是描述機器人文件中的根元素,也就是最外層一定得存在的元素。
    補充一些昨天沒提到的,<robot>一個屬性name,是你正在描述的者台機器人的名稱,以及子元素<link><joint><transmission><gazebo>
<robot name="robotName">
  ...
</robot>

後面兩個子元素昨天沒提示因為如果你不打算控制這台機器人,其實可以不急著學。
不過我還是用我目前的理解介紹一下它們。

  • <transmission>:描述機器人的關節<joint>是如何被控制。
  • <gazebo>:和gazebo控制有關,讓你在編寫URDF時可以透過此元素影響SDF。

<link>

<robot>的子元素,也有name屬性。

 <link name="my_link">
   <inertial>
     <origin xyz="0 0 0.5" rpy="0 0 0"/>
     <mass value="1"/>
     <inertia ixx="100"  ixy="0"  ixz="0" iyy="100" iyz="0" izz="100" />
   </inertial>

   <visual>
     <origin xyz="0 0 0" rpy="0 0 0" />
     <geometry>
       <box size="1 1 1" />
     </geometry>
     <material name="Cyan">
       <color rgba="0 1.0 1.0 1.0"/>
     </material>
   </visual>

   <collision>
     <origin xyz="0 0 0" rpy="0 0 0"/>
     <geometry>
       <cylinder radius="1" length="0.5"/>
     </geometry>
   </collision>
 </link>

link

link的子元素
...待補細節

<joint>

  • <robot>的子元素,負責描述關節的動力學等基本資訊,有name及type屬性。
 <joint name="my_joint" type="floating">
    <origin xyz="0 0 1" rpy="0 0 3.1416"/>
    <parent link="link1"/>
    <child link="link2"/>

    <calibration rising="0.0"/>
    <dynamics damping="0.0" friction="0.0"/>
    <limit effort="30" velocity="1.0" lower="-2.2" upper="0.7" />
    <safety_controller k_velocity="10" k_position="15" soft_lower_limit="-2.0" soft_upper_limit="0.5" />
 </joint>

joint
...待補細節


上一篇
【AMR_Day21】淺淺認識URDF、SDF
下一篇
【AMR_Day23】來用URDF刻一台車—外觀
系列文
一個營建系學生的韌體之路-自走車篇30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言